<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // js新增的基本数据类型 symbol 永远不会重复的字符串
      let hd = Symbol('123')
      console.log(typeof hd)
      let edu = Symbol()
      console.log(hd === edu) //symbol 永远不等于symbol  false
      console.log(hd.description) // 提取symbol的描述符 123

      let cms = Symbol.for('456')
      let cms2 = Symbol.for('456') // Symbol.for可以让symbol多次使用
      console.log(cms === cms2) // true
      console.log(Symbol.keyFor(cms)) //获得描述符 456

      // Symbol 解决字符串的耦合的问题

      // 造成合并的问题
      // const grade = {
      //   ls: { js: 100, css: 30 },
      //   ls: { js: 100, css: 30 },
      // }

      let user1 = {
        name: 'ls',
        key: Symbol(),
      }

      let user2 = {
        name: 'ls',
        key: Symbol(),
      }

      const grade = {
        [user1.key]: { js: 100, css: 30 }, // 使用symbol作为属性名，不会重合
        [user2.key]: { js: 100, css: 30 },
      }
      console.log(grade[user1.key])

      
    </script>
  </body>
</html>
